﻿using System.Collections.Generic;
using CoreLibrary.Repo;
using Entities.DataBase.Obj;
using Entities.DataBase.Persistent;

namespace Entities.DataBase {

    public interface IProductStockRepository : IRepository<Stock> {

        void CreateOrIncreaseStock(CreateStockReq request);
        void SyncStock(SyncStockReq request);

        void IncreaseStocks(List<UpdateStockReq> requests);
        void ReduceStocks(List<UpdateStockReq> requests);

        Stock GetStock(int stockId);
        Stock GetStock(string productId, int location);

        List<StockInfo> ListAllStocks();
        List<StockInfo> ListStocksByLocation (int location);
        List<StockInfo> ListStocksByProductId(string productId);

    }
}